/**
 * 鉴权工具函数
 * 用于管理登录状态、权限验证等功能
 */

// 获取token
export function getToken() {
  return localStorage.getItem('authToken')
}

// 设置token
export function setToken(token) {
  localStorage.setItem('authToken', token)
}

// 移除token
export function removeToken() {
  localStorage.removeItem('authToken')
}

// 检查是否已登录
export function isLoggedIn() {
  return !!getToken()
}

// 操作类型枚举
export const OperationType = {
  READ: 'read',   // 读操作
  WRITE: 'write'  // 写操作
}

// 需要登录验证的操作列表
const operationsRequireAuth = [
  { name: 'restart_pro', type: OperationType.WRITE },      // 重启进程
  { name: 'clean_data', type: OperationType.WRITE },       // 清理数据
  { name: 'data_retransmission', type: OperationType.WRITE }, // 数据重传
  { name: 'modify_path', type: OperationType.WRITE }       // 修改路径
]

/**
 * 检查操作是否需要登录验证
 * @param {string} operationName - 操作名称
 * @returns {boolean} - 是否需要登录验证
 */
export function isOperationRequireAuth(operationName) {
  return operationsRequireAuth.some(op => op.name === operationName)
}

/**
 * 检查当前用户是否有权限执行该操作
 * @param {string} operationName - 操作名称
 * @returns {boolean} - 是否有权限
 */
export function checkPermission(operationName) {
  // 如果操作不需要验证，直接返回true
  if (!isOperationRequireAuth(operationName)) {
    return true
  }
  
  // 如果操作需要验证，检查是否已登录
  return isLoggedIn()
} 